package cn.skylark.wcm.service;

import cn.skylark.wcm.entity.User;
import com.github.pagehelper.PageInfo;

import java.util.Map;

/**
 * 用户接口service
 *
 * @author chuhl
 * @since
 */
public interface UserService {
    /**
     * 添加用户
     *
     * @param user User
     * @return boolean
     */
    boolean addUser(User user);


    /**
     * 分页获取用户信息
     *
     * @param user
     * @param searchValue
     * @param start
     * @param length
     * @return
     */
    PageInfo<User> selectByPage(User user,String flag, String searchValue, int start, int length);

    /**
     * 根据用户名取用户
     *
     * @param user String
     * @return User
     */
    Integer selectByUsername(User user);

    /**
     * 删除用户
     *
     * @param userid Integer
     */
    void delUser(Integer userid);

    /**
     * 将用户状态改为冻结
     *
     * @param userid
     */
    void updateStateFrozen(Integer userid);

    /**
     * 更改用户状态改为恢复
     *
     * @param userid
     */
    void updateStateRecovery(Integer userid);

    /**
     * 通过用户的id查询用户的个人资料
     *
     * @param user
     * @return
     */
    User getUserDataById(User user);

    /**
     * 通过上传的用户信息，对用户信息进行新增
     *
     * @param user
     */
    void saveUserDataById(User user);

    /**
     * 修改用户密码
     *
     * @param user
     */
    void updatePassword(User user);

    /**
     * 用户登录
     *
     * @param user User
     */
    Map<String, Object> login(User user);

    /**
     * 通过租户id查询租户
     *
     * @param user
     * @return
     */
    User selectUserById(User user);
}
